package com.limh.base

import android.app.Application
import com.alibaba.android.arouter.launcher.ARouter
import com.hw.ycshareelement.YcShareElement
import com.limh.base.utils.Logs
import com.qiniu.android.common.FixedZone
import com.qiniu.android.storage.Configuration
import com.qiniu.android.storage.UploadManager
import kotlin.properties.Delegates


/**
 * @function：
 * @author： limh
 * @date： 2018/9/24
 * Copyright @2018 Corpration Name
 */
class AppConfig : Application() {
    var token = ""
    var refreshToken = ""

    companion object {
        var instance: AppConfig by Delegates.notNull()
        var uploadManager: UploadManager by Delegates.notNull()
    }

    override fun onCreate() {
        super.onCreate()
        instance = this
        if (Logs.isDebug) {           // 这两行必须写在init之前，否则这些配置在init过程中将无效
            ARouter.openLog()     // 打印日志
            ARouter.openDebug()   // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
        }
        ARouter.init(this)
        qiniuInit()
        YcShareElement.enableContentTransition(this)
    }

    /**
     * 七牛上传文件初始化
     */
    private fun qiniuInit() {
        val config = Configuration.Builder()
                .chunkSize(512 * 1024)        // 分片上传时，每片的大小。 默认256K
                .putThreshhold(1024 * 1024)   // 启用分片上传阀值。默认512K
                .connectTimeout(10)           // 链接超时。默认10秒
                .useHttps(true)               // 是否使用https上传域名
                .responseTimeout(60)          // 服务器响应超时。默认60秒
//                .recorder(recorder)           // recorder分片上传时，已上传片记录器。默认null
//                .recorder(recorder, keyGen)   // keyGen 分片上传时，生成标识符，用于片记录器区分是那个文件的上传记录
                .zone(FixedZone.zone0)        // 设置区域，指定不同区域的上传域名、备用域名、备用IP。
                .build()
// 重用uploadManager。一般地，只需要创建一个uploadManager对象
        uploadManager = UploadManager(config)
    }
}